Memory systems include memory interfaces that enable data to be read and written from a memory device. Conventional memory systems (e.g., hard disk, disk drive, disk array, and the like) perform data operations (e.g., read, write) on binary data stored in memory. Disk interfaces enable other devices to access and use binary data stored in memory cells. Conventional memory systems use electromechanical systems to perform data operations (e.g., read, write), but are often restricted by the physical dimensions, configuration, and movement of various components.
FIG. 1 illustrates a conventional disk drive system 100. Conventional disk drive system 100 includes servo tower 102, servo motor 104, servo drive apparatus 106, head arms 108-112, heads 114-118, platters 120-124, spindle shaft 126, spin motor 128, spin motor arm 130, and spin drive apparatus 132. Each of platters 120-124 stores data on rings called “cylinders,” which extend vertically across platters 120-124. Each platter is divided into n cylinders, including cylinder 0 (e.g., 134-138) and cylinder n (e.g., 140). Each platter is read and written separately by heads 114-118, each of which accesses data from platters 120-124, respectively. Heads 114-118 electromechanically access the same cylinder simultaneously. Servo motor 104 moves servo tower 102, which moves heads 114-118 simultaneously across cylinders 134-140. The mechanical operation of servo tower 102, servo motor 104, and servo drive apparatus 106 is controlled by a processor that sends electrical signals to direct forward or backward motion of head arms 108-112 and heads 114-118 across cylinders 120-124. However, conventional disk drive system 100 is limited by latencies incurred by size and the movement of various electromechanical/mechanical components.
FIG. 2 illustrates a block diagram of a conventional disk drive configuration. Conventional implementation 200 includes processor 202, read only memory (ROM) 204, static random access memory (SRAM) 206, disk controller 208, disk interface (I/F) 210, dynamic random access memory (DRAM) 212, analog read/write servo power drivers 214, servo power drivers 216, and spin motor power drivers 218. SRAM is a type of memory technology that is fast, does not degrade over time, but is volatile (requires a power source to maintain stored data). SRAM requires a battery backup to ensure power is constantly supplied, which leads to increased costs, size, maintenance, and unreliability (i.e., potential simultaneous AC power and battery failure would result in stored data being lost). DRAM experiences problems when refreshing stored data and operating under high power requirements. Flash memory is another type of memory that is non-volatile (i.e., maintains data stored in memory when removed from a power source), but has limited endurance (i.e., gradually loses its stored data in memory over time when operations (e.g., read, write) are “cycled” (i.e., performing a read operation followed by a write operation or vice versa), especially in environments requiring large numbers of accesses. Flash also requires erasing its memory before performing a write operation, which in turn requires a Flash operating system (i.e., a separate application or program) to manage data operations. Additionally, a “shadow” memory (e.g., SRAM) would also be required as a temporary store for data to be erased prior to performing a write operation. When data is erased prior to a write operation, some of the original data may need to be re-written to the Flash memory, which can create erase and write times that are longer than those for a hard disk drive. Conventional implementation 200 is used with conventional disk drive system 100 described above in connection with FIG. 1.
To read or write data, a command signal is sent from a host (not shown) through disk interface 210 to disk controller 208. Processor 202 evaluates the command signal and determines the cylinder or set of cylinders where the desired data is located. Once a location has been determined, processor 202 initiates movement of servo tower 102 and positions heads 114-118 over the desired cylinder. After mechanically positioning heads 114-118, a data operation is performed to read or write data from/to the selected cylinder. Data is then transferred from the cylinder through disk interface 210 to disk controller 208, which sends data to DRAM 212 for performing ECC checks and corrections before sending the data over disk interface 210. Conventional systems also use operating systems (e.g., Windows®, UNIX®) to manage (e.g., data produced from read, write operations) information.
When a file is stored, an operating system records the file name in a directory file. The directory file is typically stored on the first cylinder of a platter and points to a file allocation table (FAT), which contains the location of the desired data file. FATs include pointers (i.e., cylinder, head sector) to locations for data blocks (i.e., a file may be stored in data blocks in different locations on a platter) of a file. FATs are continuously accessed by an operating system, which is typically located on the first cylinders of a platter (e.g., cylinders 134-138). This requires moving servo tower 102, head arms 108-112, and heads 114-118 continuously between the first cylinders and the cylinders where a data operation is to be performed. In conventional implementations, a performance bottleneck results from the delays caused by the mechanical action and settling times of conventional memory systems.
Continuing efforts are being made to improve memory systems.
It is to be understood that the depictions in the FIGs are not necessarily to scale. Although various examples of the invention are disclosed in the accompanying drawings, the invention is not limited to those specific examples.